#include "Troll_CImagen.h"

Troll_CImagen::Troll_CImagen(void)
{
}

Troll_CImagen::~Troll_CImagen(void)
{
}

SDL_Rect Troll_CImagen::acomodar_posicion(SDL_Surface *imagen, SDL_Rect posicion)
{
	SDL_Rect posicion_aux = posicion;
	posicion_aux.x = posicion.x - (imagen->w / 2);
	posicion_aux.y = posicion.y - (imagen->h / 2);
	return posicion_aux;
}

SDL_Surface *Troll_CImagen::cargar(std::string archivo)
{
	SDL_Surface* imgCargada = IMG_Load(archivo.c_str());
	SDL_Surface* imgOptimizada = NULL;
	if(imgCargada != NULL)
	{
		imgOptimizada = SDL_DisplayFormatAlpha(imgCargada);
	}
	SDL_FreeSurface(imgCargada);
	return imgOptimizada;
}

bool Troll_CImagen::pintar(int x, int y, SDL_Surface *origen, SDL_Surface *destino)
{
	if(origen == NULL || destino == NULL) return false;
	SDL_Rect plano;
	plano.x = x;
	plano.y = y;
	SDL_BlitSurface(origen, NULL, destino, &plano);
	return true;
}

bool Troll_CImagen::pintar(int x, int y, int x2, int y2, int w, int h, SDL_Surface *origen, SDL_Surface *destino)
{
	if(origen == NULL || destino == NULL) return false;
	SDL_Rect plano,
			 desviacion;
	plano.x = x;
	plano.y = y;
	desviacion.h = h;
	desviacion.w = w;
	desviacion.x = x2;
	desviacion.y = y2;
	SDL_BlitSurface(origen, &desviacion, destino, &plano);
	return true;
}